package domain.controllers.validators;

import domain.commands.TareaComando;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.validation.*;



public class TareaValidator implements Validator {

	public boolean supports(Class clazz) {
		
		return TareaComando.class.isAssignableFrom(clazz);
	}
	public void validate(Object comando, Errors errors) {
            
            
            ValidationUtils.rejectIfEmptyOrWhitespace(errors, "nombreTarea", "nombreTarea.vacio", null, "Introduzca un valor correcto para el nobre de la Tarea");
            
            TareaComando tc = (TareaComando)comando;
           
            String s = tc.getEtiqueta();
           
            if(s.contains(",")){
                 errors.rejectValue("etiqueta", "etiqueta.correcto","Por favor no introduzca comas entre etiquetas, sólo un espacio en blanco");
             }
        
         String fechaIni = tc.getFechaIni();  
            
        if(!fechaIni.equals("")){
           
          if(fechaIni.length() !=10 ){ 
               
              errors.rejectValue("fechaIni", "fechaIni.correcto","La fecha etsa mal, seleccionala del calendario por favor");
           
             
          }else if(!fechaIni.substring(4,5).equals("-")){
                errors.rejectValue("fechaIni", "fechaIni.correcto","La fecha etsa mal, seleccionala del calendario por favor ");
            }else if(!fechaIni.substring(7, 8).equals("-")){
                errors.rejectValue("fechaIni", "fechaIni.correcto","La fecha etsa mal, seleccionala del calendario por favor");
            }else{
                 
               Pattern p = Pattern.compile("[a-zA-Z]");
               Matcher m = p.matcher(fechaIni);
                if(m.find()){
                   errors.rejectValue("fechaIni", "fechaIni.correcto","La fecha es incorretca, selecione la fecha del calendario por favor");
                }
               
              }
            
            }   
            
         String fechaFin = tc.getFechaFin();
          
         if(!fechaFin.equals("")){
          if(fechaFin.length() !=10 ){ 
               
              errors.rejectValue("fechaFin", "fechaFin.correcto","La fecha etsa mal, seleccionala del calendario por favor");
           
             
          }else if(!fechaFin.substring(4,5).equals("-")){
                errors.rejectValue("fechaFin", "fechaFin.correcto","La fecha etsa mal, seleccionala del calendario por favor ");
            }else if(!fechaIni.substring(7, 8).equals("-")){
                errors.rejectValue("fechaFin", "fechaFin.correcto","La fecha es incorrecta, seleccionala del calendario por favor");
            }else{
                   Pattern p = Pattern.compile("[a-zA-Z]");
                   Matcher m = p.matcher(fechaFin);
                if(m.find()){
                   errors.rejectValue("fechaFin", "fechaFin.correcto","La fecha es incorretca, selecione la fecha del calendario por favor");
              }
               
               
            }
         }
        }
         

}